package jdbc;

import java.sql.*;

public class JDBCDemo2 {

    /**
     * 插入语句
     * @return 受影响的行数
     */
    public static int insert() {
        final String url = "jdbc:mysql://localhost:3306/jdbcdemo?serverTimezone=UTC";  // 数据库 url
        final String user = "root"; // 数据库用户名
        final String password = "123456"; // 数据库密码

        Connection connection = null;
        Statement  statement = null;
        int result = 0;

        try {
            // 1. 加载数据库驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 2. 建立连接
            connection = DriverManager.getConnection(url, user, password);
            // 3. 创建 Statement 对象，用于向数据库发送 SQL 语句
            String sql = "INSERT INTO `user` VALUES(null, \"testUsername\", \"testNickname\", \"123456\")";
            statement = connection.createStatement();
            result = statement.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 4. 释放资源，断开与数据库的连接（调用close()方法）
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                statement = null;
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                // 此处手动设置为 null，有益于垃圾回收机制更早地回收对象
                connection = null;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        int rows = JDBCDemo2.insert();
        System.out.println("受影响的行数为：" + rows);
    }

}

